//package nancal.mp.service.jenkins
//
//import nancal.mp.db.mongo.entity.dev.*
//import nancal.mp.db.mongo.extend.getAppDeploySetting
//import nancal.mp.db.mongo.mor
//import nancal.mp.model.ImageNameVersionData
//import nancal.mp.model.JenkinsExportModel
//import nancal.mp.model.JenkinsImportModel
//import nancal.mp.service.K8sDeploymentService
//import nancal.mp.service.jenkins.publish.FunctionContent
//import nancal.mp.service.jenkins.publish.f4_restart_nginx
//import nbcp.base.comm.config
//import nbcp.base.extend.*
//import nbcp.base.utils.SpringUtil
//import nbcp.base.utils.WebUtil
//import nbcp.web.service.upload.MinioBaseService
//import java.time.LocalDateTime
//
//class JenkinsOpsImportJob(
//    val task: JenkinsImportModel = JenkinsImportModel()
//) {
//
//    var now = LocalDateTime.now().Format("MMdd-HH:mm");
//
//    val appDeploySetting: AppDeploySetting
//        get() {
//            return mor.dev.appDeploySetting.getAppDeploySetting(task.targetEnv)
//        }
//
//    var minioFiles = listOf<String>()
//    init {
//        var sects = task.minioUrl.split("/").filter { it.HasValue };
//        var bucket = sects.get(0);
//        var prefix = sects.Skip(1).joinToString("/");
//        minioFiles = SpringUtil.getBean<MinioBaseService>().listFile(bucket,prefix).data;
//    }
//
//
//    fun docker_push_services(): String {
//        return  """
//ls
//docker load -i  xxx.tar
//docker tag images.houchangzao.com/vue/xf-task-vue:20230724.164312 172.10.185.6:5000/nancal/xf-task-vue:20230724.164312
//
//"""
//
//    }
//
//
//    fun join_tar(): String {
//        return   """
//cat fff/*.tar > exus-3-export-data.tar.gz
//"""
//
//    }
//    fun download_minio(): String {
//
//        return minioFiles.map {
//            """
//下载 minio: ${it}
//curl -OJ  -s -w %{http_code} --max-time 6 --retry 3  ${it}
//"""
//        }.joinToString("\n")
//    }
//
//
//    fun f_mongo_restore():FunctionContent {
//        return FunctionContent("mongo_restore","""
//db=＄1
//
//docker run -it --rm  -v /opt:/opt  ${config.getConfig("app.mongo-docker").must()
//            .elseThrow { "必须配置 app.mongo-docker" }
//}  /bin/bash -c "mongorestore --forceTableScan -d ＄db -u＄${task.mongo.user} -p＄${task.mongo.password
//}  -authenticationDatabase admin  --gzip --drop  ＄db ./k8s-ops/mongo-bak
//
//""" )
//    }
//    fun mongo_restore():String {
//return """
//${f_mongo_restore()}
//
//${task.mongo.db.split(",")
//    .map { """
//echo mongo_restore ${it}
//mongo_restore  ${it}"""  }
//    .joinToString("\n")
//}
//"""
//    }
//
//
//    fun k8s_patch_services():String{
//        return  """
//ls
//curl -X POST -o log.txt -H"Content-type:application/json" -s -w  %{http_code} --max-time 30 --retry 3 ${appDeploySetting.mpIntegrationApiUrl}/ops/k8s/deployment/set-k8s-image  -d '{"targetEnv":"${this.appDeploySetting.code}","namespace":"${this.task.namespace}","name":"","imageName":""}
//        """
//    }
//
//    fun getImportPipeline(): String {
//        return """
//pipeline {
//    agent any
//    environment {
//        namespace = "${task.namespace}"
//        minioUrl = "${task.minioUrl}"
//        ms_deploy_env = "${task.targetEnv}"
//        debug = false
//    }
//    stages {
//        stage('minio下载') {
//            steps {
//${download_minio().sudoExecSh()}
//            }
//        }
//        stage('合包') {
//            steps {
//
//${join_tar().sudoExecSh()}
//
//            }
//        }
//        stage('mongo库恢复') {
//            steps {
//${mongo_restore().sudoExecSh()}
//
//            }
//        }
//        stage('上传k8s镜像') {
//            steps {
//
//${docker_push_services().sudoExecSh()}
//
//            }
//        }
//        stage('应用镜像') {
//            steps {
//${k8s_patch_services().sudoExecSh()}
//            }
//        }
//    }
//}
//"""
//    }
//
//}